//package com.franklin.ideaplugin.easytesting.editor;
//
//import com.franklin.ideaplugin.api.utils.ExecuteToolBarUtils;
//import com.franklin.ideaplugin.api.ui.ToolBarWindowForm;
//import com.intellij.openapi.application.WriteAction;
//import com.intellij.openapi.fileEditor.impl.text.PsiAwareTextEditorImpl;
//import com.intellij.openapi.fileEditor.impl.text.TextEditorProvider;
//import com.intellij.openapi.project.Project;
//import com.intellij.openapi.vfs.VirtualFile;
//import com.intellij.openapi.vfs.VirtualFileManager;
//import org.jetbrains.annotations.NotNull;
//
//import javax.swing.*;
//import java.awt.*;
//
///**
// * @author Franklin
// * @since 2023/07/31 21:44
// */
//public abstract class BaseScriptTextEditor extends PsiAwareTextEditorImpl {
//
//    private final ToolBarWindowForm toolBarWindowForm;
//
//    public BaseScriptTextEditor(@NotNull Project project, @NotNull VirtualFile file, @NotNull TextEditorProvider provider) {
//        super(project, file, provider);
//        this.toolBarWindowForm = new ToolBarWindowForm();
//        this.toolBarWindowForm.addContent(super.getComponent(),new Dimension(-1,-1));
//    }
//
//    @Override
//    public final @NotNull String getName() {
//        return getRealName();
//    }
//
//    @Override
//    public @NotNull JComponent getComponent() {
//        return this.toolBarWindowForm.getMainPanel();
//    }
//
//    public void addButton(JButton button){
//        this.toolBarWindowForm.addToolButton(button);
//    }
//
//    public void initToolBar(){
//        ExecuteToolBarUtils.initToolBar(this.toolBarWindowForm);
//    }
//
//    /**
//     * 文件名
//     * @return
//     */
//    protected abstract String getRealName();
//
//    /**
//     * 刷新文本
//     * @param newText
//     */
//    public void refreshText(String newText){
//        try {
//            WriteAction.run(() -> {
//                VirtualFileManager.getInstance().syncRefresh();
//                this.getFile().refresh(true,false);
//            });
//        } catch (Throwable throwable) {
//            //ignore
//        }
//    }
//}
